//
//  RequestServices.h
//  HousingPoliceAssistant
//
//  Created by 云警01 on 2019/6/6.
//  Copyright © 2019 盛洋. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "MBProgressHUD.h"

NS_ASSUME_NONNULL_BEGIN

#pragma mark  ---  ResquestServicesDelegate

@protocol ResquestServicesDelegate <NSObject>
@optional
/**
 请求完成时-调用
 */
-(void)getFinished:(NSDictionary *)obj tag:(long long)tag;

/**
 请求失败时-调用
 */
-(void)getError:(NSError *)error tag:(long long)tag;

@end

@interface RequestServices : NSObject
{
    BOOL is_loading;
}

@property (strong, nonatomic) MBProgressHUD *HUD;
@property (strong, nonatomic) UIView        *view;
@property (nonatomic, weak) id<ResquestServicesDelegate> delegate;
-(BOOL)isLoadingNow;

#pragma mark --- 初始化
- (id)initWithDelegate:(id)delegate;
-(void)cancel;

#pragma mark ---------------------------- 注册登录
/**
 * 获取验证码
 * @param mobile                手机号
 * @param type                  类型 1登录
 */
- (void)getMobileCode:(NSString *)mobile type:(NSString *)type tag:(NSInteger)tag;

/**
 * 登录
 * @param  mobile    手机号
 * @param  captcha   验证码
 * @param messageDeviceToken    消息推送device_token
 */
-(void)loginToApplication:(NSString *)mobile captcha:(NSString *)captcha messageDeviceToken:(NSString *)messageDeviceToken tag:(NSInteger)tag;

/**
 * 注册提交
 * @param  userName    昵称
 * @param  gender      性别 1 男 2 女 0未知
 * @param  birthday    生日
 */
-(void)registerCount:(NSString *)userName gender:(NSString *)gender  birthday:(NSString*)birthday tag:(NSInteger)tag;

/**
 * 广告页 首页
 * @param  type        广告类型:1开屏广告,2首页广告
 */
-(void)getAdvert:(NSString *)type tag:(NSInteger)tag;


#pragma mark ---------------------------- 个人中心
/**
 * 版本检查
 * @param  appType    1：安卓，2苹果
 * @param  version    版本，如：100（对应版本为1.0.0）
 */
-(void)checkVersion:(NSString *)appType version:(NSString *)version tag:(NSInteger)tag;

/**
 * 添加绑定设备
 * @param  deviceId      设备ID
 * @param  deviceName    设备名称
 */
-(void)addLoginDevice:(NSString *)deviceId deviceName:(NSString *)deviceName tag:(NSInteger)tag;

/**
 * 设备列表
 */
-(void)getDeviceList:(NSInteger)tag;

/**
 * 移除绑定设备
 * @param  deviceId      设备ID
 */
-(void)removeDevice:(NSString *)deviceId tag:(NSInteger)tag;


/**
* 学习报告列表
*/
-(void)studyRepoetList:(NSString *)page  tag:(NSInteger)tag;

/**
 *  获取用户信息
 */
-(void)getUserInfor:(NSInteger)tag;

/**
 * 设置-我的作品列表
 * type  0常规 1赛道 3学习中心
 */
-(void)myWorkList:(NSInteger)page type:(NSString *)type tag:(NSInteger)tag;

/**
 * 我的消息
 * @param  current    当前页数
 * @param  size       页数大小
 * @param  type       0系统消息 1学习消息
 */
-(void)getNewsList:(NSInteger)page type:(NSString*)type tag:(NSInteger)tag;

/**
 * 获取邀请注册链接
 */
-(void)getInviteHttp:(NSInteger)tag;

/**
 * 获取隐私设置协议标题列表
 */
-(void)getProtocolList:(NSInteger)tag;

/**
 * 更新用户信息
 */
-(void)updateUserInfor:(NSDictionary *)dic tag:(NSInteger)tag;


#pragma mark ---------------------------- 学习中心
/**
 * 学科列表
 * @param  page    页面
 */
-(void)getClassList:(NSString *)page tag:(NSInteger)tag;

/**
 * 学习中心-2 /推荐课程/课程目录
 * @param  page        页面
 * @param  recommend   课程是否推荐状态(非必填)：0正常状态，1推荐
 * @param  categoryId  课程类别（学科）id
 * @param  stageId     阶段id(非必填)
 */
-(void)getCurriculumList:(NSString *)page categoryId:(NSString *)categoryId recommend:(NSString *)recommend stageId:(NSString *)stageId tag:(NSInteger)tag;

/**
 * 课程阶段列表
 * @param  categoryId    学科(类别)id
 */
-(void)getStageList:(NSString *)categoryId tag:(NSInteger)tag;

/**
 * 课程详情
 * @param  courseId      课程id
 */
-(void)getCourseInfor:(NSString *)courseId tag:(NSInteger)tag;

/**
 * 课程参考资料
 * @param  courseId      课程id
 */
-(void)getClassData:(NSString *)courseId tag:(NSInteger)tag;

/**
 * 推荐作品
 * @param  page          页面
 */
-(void)tuiJianZuoPin:(NSString *)page tag:(NSInteger)tag;

/**
 * 上传文件
 * @param  file          上传文件
 */
-(void)upLoadFile:(NSArray *)file tag:(NSInteger)tag;

/**
 * 上传作品
 * @param  courseId      课程id
 * @param  desc          作品描述【非必填】
 * @param  fileList      作品上传的列表
 * @param  userId        userId

 */
-(void)upLoadMyWorks:(NSString *)courseId desc:(NSString *)desc fileList:(NSArray *)fileList userId:(NSString *)userId tag:(NSInteger)tag;

/**
 * 学习-测试-练习-上传作品-流程锁
 * @param  courseId      课程id
 */
-(void)getStepsLock:(NSString *)courseId tag:(NSInteger)tag;

/**
 * 统计看视频时长
 * @param  course_id                 课程id
 * @param  current_look_minutes      观看时间
 * @param  max_video_minutes         时长
 */
-(void)checkWatchVideo:(NSString *)course_id current_look_minutes:(NSString *)current_look_minutes max_video_minutes:(NSString *)max_video_minutes tag:(NSInteger)tag;

/**
 * 练-测-题库
 * @param  courseId                  课程id
 * @param  current                   当前页数
 * @param  size                      页数大小
 * @param  type                      类型：1练，2测
 */
-(void)getQuestionBank:(NSString *)courseId current:(NSInteger)current size:(NSInteger)size type:(NSInteger)type tag:(NSInteger)tag;

#pragma mark ---------------------------- 试验中心
/**
 * 获取试验中心列表
 * @param  page          页面
 * @param  type          试验类型 1：互动试验 2：模型展示 面
 */
-(void)getTestCenterList:(NSString *)page type:(NSString *)type tag:(NSInteger)tag;

/**
 * 获取试验中心详情
 * @param  id           试验详情的id
 */
-(void)getTestCenterInfor:(NSString *)id tag:(NSInteger)tag;


#pragma mark ---------------------------- 阿列夫赛道
/**
 * 查看报名的活动/比赛列表
 * @param  current      当前页数
 * @param  size         页数大小
 * @param  status       比赛状态 0未开始 1报名中 2评奖中 3已结束
 * @param  type         活动类型 0常规 1赛道
 * @param  keyword      搜索词语 (搜索页面字段)

 */
-(void)requestAliefuGymList:(NSInteger)current size:(NSInteger)size status:(NSInteger)status type:(NSInteger)type keyword:(NSString *)keyword tag:(NSInteger)tag;

/**
* 活动/比赛详情
* @param  typeid         活动/赛道ID 查询活动/比赛详情使用
*/
-(void)getGymInfor:(NSInteger)typeid tag:(NSInteger)tag;



/**
 * 获取搜索热词
 * @param  type           1首页，2:学习中心，3阿列夫赛道
 */
-(void)requestSearchWord:(NSInteger)type tag:(NSInteger)tag;

/**
* 上传视频
* @param  file            文件
*/
-(void)requestUPLoadVideo:(NSString *)file tag:(NSInteger)tag;

/**
*  作品提交
*/
-(void)requestUPLoad:(id)parmas tag:(NSInteger)tag;

/**
 *  优秀作品
 * @param  typeid         比赛ID
 * @param  type           比赛 0常规 1赛道
 * @param  current        分页当前页
 * @param  keyword        关键词搜索
*/
-(void)getGoodProductionList:(NSInteger)typeid type:(NSInteger)type current:(NSInteger)current size:(NSInteger)size keyword:(NSString *)keyword tag:(NSInteger)tag;

@end

NS_ASSUME_NONNULL_END
